----Procedimiento insert

create procedure inserta_en_suscriptor_df(
	@suscriptor_id 		numeric(10),
	@nombre 			varchar(50),
	@apellidos 			varchar(50),
	@telefono 			numeric(12),
	@domicilio 			varchar(50),
	@estado 			varchar(50)
) as 
insert into suscriptor_df(suscriptor_id,nombre,apellidos,telefono,domicilio,estado)
values(@suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,@estado);

create procedure inserta_en_suscripcion_df(
	@folio 			numeric(10),
	@suscriptor_id 		numeric(10),
	@publicacion_id 	numeric(10),
	@fecha_inicio 		date,
	@duracion 		numeric(5)
) as 
insert into suscripcion_df(folio,suscriptor_id,publicacion_id,fecha_inicio,duracion)
values(@folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion);

--Procedimiento de borrado

create procedure borrar_de_suscriptor_df(
	@suscriptor_id 		numeric(10)
) as 
delete from suscriptor_df where suscriptor_id=@suscriptor_id;

create procedure borrar_de_suscripcion_df(
	@folio 		numeric(10)
) as 
delete from suscripcion_df where folio=@folio;



--Triggers

create trigger  trgr_suscriptor on SUSCRIPTOR
instead of insert as
	declare	@suscriptor_id 		numeric(10)
	declare	@nombre 			varchar(50)
	declare	@apellidos 			varchar(50)
	declare	@telefono 			numeric(12)
	declare	@domicilio 			varchar(50)
	declare	@estado 			varchar(50)
begin
	select 	@suscriptor_id=suscriptor_id,
			@nombre=nombre,
			@apellidos=apellidos,
			@telefono=telefono,
			@domicilio=domicilio,
			@estado=upper(estado)
	from inserted
	if @estado='DF'
		exec inserta_en_suscriptor_df @suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,@estado
	else if @estado='SONORA'
		exec ASEREPLICADO.suscripciones_bdd.dbo.inserta_en_suscriptor_son @suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,@estado
	else if @estado='TAMAULIPAS'
		exec ASEREPLICADO.suscripciones_bdd.dbo.inserta_en_suscriptor_tam @suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,@estado
	else if @estado='TABASCO'
		exec ASEREPLICADO.suscripciones_bdd.dbo.inserta_en_suscriptor_tab @suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,@estado
	else if @estado='TLAXCALA'
		exec ASEREPLICADO.suscripciones_bdd.dbo.inserta_en_suscriptor_tlax @suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,@estado
end

create trigger  trgr_suscripcion on SUSCRIPCION
instead of insert as
	declare	@folio 				numeric(10)
	declare @suscriptor_id 		numeric(10)
	declare @publicacion_id 	numeric(10)
	declare @fecha_inicio 		date
	declare @duracion 			numeric(5)
	declare @estado			varchar(50)
begin
	select 	@folio=folio,
			@suscriptor_id=suscriptor_id,
			@publicacion_id=publicacion_id,
			@fecha_inicio=fecha_inicio,
			@duracion=duracion
	from inserted

	select @estado=upper(estado)
	from SUSCRIPTOR
	where suscriptor_id=@suscriptor_id

	if @estado='DF'
		exec inserta_en_suscripcion_df @folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion
	else if @estado='SONORA'
		exec ASEREPLICADO.suscripciones_bdd.dbo.inserta_en_suscripcion_son @folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion
	else if @estado='TAMAULIPAS'
		exec ASEREPLICADO.suscripciones_bdd.dbo.inserta_en_suscripcion_tam @folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion
	else if @estado='TABASCO'
		exec ASEREPLICADO.suscripciones_bdd.dbo.inserta_en_suscripcion_tab @folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion
	else if @estado='TLAXCALA'
		exec ASEREPLICADO.suscripciones_bdd.dbo.inserta_en_suscripcion_tlax @folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion
	
end



create trigger  trgr_drop_suscriptor on SUSCRIPTOR
instead of delete as
	declare	@suscriptor_id 		numeric(10)
	declare @estado				varchar(50)
begin
	select 	@suscriptor_id=suscriptor_id,
			@estado=estado
	from deleted

    if @estado='DF'
		delete from suscripcion_df where suscriptor_id=@suscriptor_id
	else if @estado='SONORA'
		delete from suscripcion_son where suscriptor_id=@suscriptor_id
	else if @estado='TAMAULIPAS'
		delete from suscripcion_tam where suscriptor_id=@suscriptor_id
	else if @estado='TABASCO'
		delete from suscripcion_tab where suscriptor_id=@suscriptor_id
	else if @estado='TLAXCALA'
		delete from suscripcion_tlax where suscriptor_id=@suscriptor_id

	if @estado='DF'
		exec borrar_de_suscriptor_df @suscriptor_id
	else if @estado='SONORA'
		exec ASEREPLICADO.suscripciones_bdd.dbo.borrar_de_suscriptor_son @suscriptor_id
	else if @estado='TAMAULIPAS'
		exec ASEREPLICADO.suscripciones_bdd.dbo.borrar_de_suscriptor_tam @suscriptor_id
	else if @estado='TABASCO'
		exec ASEREPLICADO.suscripciones_bdd.dbo.borrar_de_suscriptor_tab @suscriptor_id
	else if @estado='TLAXCALA'
		exec ASEREPLICADO.suscripciones_bdd.dbo.borrar_de_suscriptor_tlax @suscriptor_id
end


create trigger  trgr_drop_publicacion on publicacion
instead of delete as
	declare	@publicacion_id 		numeric(10)
begin
	select 	@publicacion_id =publicacion_id
	from deleted

	delete from suscripcion_df where publicacion_id=@publicacion_id
	delete from suscripcion_son where publicacion_id=@publicacion_id
	delete from suscripcion_tam where publicacion_id=@publicacion_id
	delete from suscripcion_tab where publicacion_id=@publicacion_id
	delete from suscripcion_tlax where publicacion_id=@publicacion_id

end


create trigger  trgr_update_suscriptor on SUSCRIPTOR
instead of update as
	declare	@suscriptor_id 		numeric(10)
	declare	@nombre 			varchar(50)
	declare	@apellidos 			varchar(50)
	declare	@telefono 			numeric(12)
	declare	@domicilio 			varchar(50)
	declare @estado				varchar(50)
begin
	select 	@suscriptor_id=suscriptor_id,
			@nombre=nombre,
			@apellidos=apellidos,
			@telefono=telefono,
			@domicilio=domicilio,
			@estado=upper(estado)
	from inserted

	if @estado='DF'
		update suscriptor_df SET nombre=@nombre, apellidos=@apellidos, telefono=@telefono, domicilio=@domicilio where suscriptor_id=@suscriptor_id
	else if @estado='SONORA'
		update suscriptor_son SET nombre=@nombre, apellidos=@apellidos, telefono=@telefono, domicilio=@domicilio where suscriptor_id=@suscriptor_id
	else if @estado='TAMAULIPAS'
		update suscriptor_tam SET nombre=@nombre, apellidos=@apellidos, telefono=@telefono, domicilio=@domicilio where suscriptor_id=@suscriptor_id
	else if @estado='TABASCO'
		update suscriptor_tab SET nombre=@nombre, apellidos=@apellidos, telefono=@telefono, domicilio=@domicilio where suscriptor_id=@suscriptor_id
	else if @estado='TLAXCALA'
		update suscriptor_tlax SET nombre=@nombre, apellidos=@apellidos, telefono=@telefono, domicilio=@domicilio where suscriptor_id=@suscriptor_id

end








